home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 11
/
CU Amiga Magazine's Super CD-ROM 11 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-06].iso
/
propage
/
genies
/
frenchgenies
/
rexx
/
importebitmapechelle1.pprx
< prev
next >
Wrap
Text File
|
1993-08-03
|
5KB
|
147 lines
/*@BImporteBitmapEchelle1 @P @I Ecrit et © par Don Cox en juillet 92
@IN'est pas du Domaine Publique. Tous Droits Réservés.
Traduit et modifié par Fabien Larini le 24/07/93.
Ce Génie importe une image bitmap à l'échelle 1 en présumant d'une
résolution d'écran de 75 dpi. Il redimensionne la boîte devant contenir
l'image afin que celle-ci soit visible entièrement. Il permet de
prévisualiser l'image avant de l'importer.
*/
/*ImportBitmap1to1*/
/* Import bitmap with a scale of 1:1, assuming a screen resolution of 75 dpi in hi-res.
Written by Don Cox July '92 */
signal on error
signal on syntax
address command
call ppm_AutoUpdate(0)
call SafeEndEdit.rexx()
oldunits = ppm_GetUnits()
call ppm_SetUnits(1)
/* Contrôle fichier de configuration */
fichiercfg = "rexx:ImporteBitmapEchelle1.cfg"
idem = 0
viewer = ""
pos = 0
/* Demande si nouvelle config */
if exists(fichiercfg) then
idem = ppm_Inform(2,"Utilisation de la configuration sauvée ?","Non","Oui")
/* Si fichier inexistant ou si utilisateur veut changer la config */
if (~exists(fichiercfg) | idem=0) then do
/* Quel viewer ?*/
viewer = ppm_GetFileName("Choix du Visualisateur","","")
if viewer = '' then exit_msg("Opération Annulée")
pos = max(lastpos(":",viewer),lastpos("/",viewer))
viewerdir = delstr(viewer,pos+1)
/* Un fichier choisi ? */
viewerfile = delstr(viewer,1,length(viewerdir))
if viewerfile = "" then exit_msg("Pas de Visualisateur Choisi")
/* Y a-t-il un espace dans le nom */
if lastpos(" ",viewer) ~=0 then exit_msg("Il y a un espace dans le nom et/ou le répertoire du visualisateur")
/* Sauver dans fichier ? */
if ppm_Inform(2,"Sauvegarder dans le fichier de configuration ?","Non","Oui") = 1 then do
if open(cfg,fichiercfg,"W") then do
call writeln(cfg,viewer)
call close(cfg)
end
else
exit_msg("Impossible de sauvegarder le fichier de configuration")
end
end
/* Chargement du fichier de config */
else if idem = 1 then do
if open(cfg,fichiercfg,"R") then do
viewer = readln(cfg)
call close(cfg)
end
else
exit_msg("Impossible de lire le fichier de configuration")
end
/* Y a-t-il un espace dans viewer */
if lastpos(" ",viewer) ~=0 then viewer = '22'x||viewer||'22'x
do forever
/* Choix de l'image */
filespec = ppm_GetFileName("Choix du fichier Bitmap",getclip(pp_IBE1),"")
if filespec = '' then exit_msg("Opération Annulée")
pos = max(lastpos(":",filespec),lastpos("/",filespec))
bitmapdir = delstr(filespec,pos+1)
/* Un fichier choisi ? */
bitmapfile = delstr(filespec,1,length(bitmapdir))
if bitmapfile = "" then exit_msg("Pas de fichier choisi")
/* pour se rappeler du répertoire même après l'arrêt du Génie */
call setclip(pp_IBE1, bitmapdir)
/* Y a-t-il un espace dans la ligne de commande */
/* Prévisualisation de l'image. " >nil: " ajouté pour éviter d'avoir
le résultat de la commande */
if lastpos(" ",filespec) ~=0 then filespec = '22'x||filespec||'22'x
commande = viewer||' > nil: '||filespec
address command commande
/* Le choix est il bon ? */
if ppm_Inform(2,"Voulez vous importer cette image ?","Non","Oui") = 1 then break
end
box = ppm_ClickOnBox("Clickez dans la boîte de destination...")
if box=0 then exit_msg(1,"Pas de Boîte Sélectionnée",)
gone = ppm_DeleteContents(box)
worked = ppm_ImportBM(box,filespec)
info = ppm_GetBoxInfo(box)
width = word(info,2)
height = word(info,3)
if width>400 then do
width = width/75 /* screen images at 75dpi for high res */
xscale = 1
end
else do
width = width/37.5
xscale = 2
end
if height>360 then do
height = height/75
yscale = 1
end
else do
height = height/37.5
yscale = 2
end
call ppm_SetBoxScale(box,xscale,yscale)
call ppm_SetBoxSize(box,width,height)
exit_msg()
exit_msg:
do
parse arg message
if message ~= "" then
call ppm_Inform(1,message,)
call ppm_SetUnits(oldunits)
call ppm_ClearStatus()
call ppm_PPageToFront()
call ppm_AutoUpdate(1)
exit
end